package com.gobang.domain.vo;

import lombok.Data;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 匹配状态更新视图对象
 * 用于WebSocket推送匹配状态变化时的数据结构
 *
 * @author gobang-team
 * @since 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MatchStatusUpdateVO {

    /**
     * 匹配状态
     * ONLINE（在线）、MATCHING（匹配中）、MATCHED（已匹配）、GAMING（游戏中）
     */
    @JsonProperty("status")
    private String status;

    /**
     * 等待时间
     * 当前已经等待的时间，单位：秒
     */
    @JsonProperty("waitTime")
    private Integer waitTime;

    /**
     * 队列位置
     * 用户在匹配队列中的当前位置
     */
    @JsonProperty("queuePosition")
    private Integer queuePosition;

    /**
     * 预估剩余等待时间
     * 根据当前队列状况预估的剩余等待时间，单位：秒
     */
    @JsonProperty("estimatedRemainingTime")
    private Integer estimatedRemainingTime;

    /**
     * 状态描述信息
     * 用于向用户展示的友好提示信息
     */
    @JsonProperty("message")
    private String message;
} 